﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization; 

namespace Amazon.Route53.DataContracts
{  
    [DataContract(Name = "CreateHostedZoneRequest",
        Namespace = Constants.Namespace)] 
    public class HostedZoneRequest
    {
        public HostedZoneRequest()
        {
            CallerReference = Guid.NewGuid().ToString();
            HostedZoneConfig = new HostedZoneConfig();
        }
        /// <summary>
        /// The name of the domain. This must be a fully-specified domain that ends 
        /// with a period as the last label indication. If you omit the final period, 
        /// Amazon Route 53 assumes the domain is relative to the root. 
        /// This is the name you have registered with your DNS registrar. 
        /// You should ask your registrar to set the authoritative name servers for 
        /// your domain so they are the same as the set of NameServers returned in DelegationSet. 
        /// </summary>
        [DataMember(Order=1)]
        public string Name { get; set; }

        /// <summary>
        /// A unique string that identifies the request and that allows failed CreateHostedZone 
        /// requests to be retried without the risk of executing the operation twice. 
        /// You must generate a unique CallerReference string every time you create a hosted zone
        /// </summary>
        [DataMember(Order = 2)]
        public string CallerReference { get; private set; }

        /// <summary>
        /// contains configuration information for your hosted zone.
        /// </summary>
        [DataMember(Order = 3)]
        public HostedZoneConfig HostedZoneConfig { get; set; }

    }
}
